package com.weixing.mall.util;

import cn.hutool.core.date.DatePattern;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.RandomUtil;

import java.util.Date;

public class IDUtil {

    /**
     * 入库单前缀
     */
    private static final String IN_DEPOT_BILL_NO_PRE = "R";
    /**
     * 出库单前缀
     */
    private static final String OUT_DEPOT_BILL_NO_PRE = "C";
    /**
     * 调拨单前缀
     */
    private static final String DIAOBO_BILL_NO_PRE = "D";


    /**
     * 生成入库单号</br>
     * 格式前缀 + 时间戳 + 4位随机数
     *
     * @return
     */
    public static String genInDepotBillNo() {
        return genBillNo(IN_DEPOT_BILL_NO_PRE);
    }


    /**
     * 生成出库单号</br>
     * 格式：前缀 + 时间戳 + 4位随机码
     *
     * @return
     */
    public static String genOutDepotBillNo() {
        return genBillNo(OUT_DEPOT_BILL_NO_PRE);

    }


    /**
     * 生成调拨单号</br>
     * 格式：  前缀 + 时间戳 + 4位随机码
     *
     * @return
     */
    public static String genDiaoBoBillNo() {
        return genBillNo(DIAOBO_BILL_NO_PRE);
    }

    private static String genBillNo(String prefix) {
        return prefix + DateUtil.format(new Date(), DatePattern.PURE_DATETIME_MS_PATTERN) + RandomUtil.randomNumbers(4);
    }


    public static void main(String[] args) {
        System.out.println(genInDepotBillNo());
        System.out.println(genOutDepotBillNo());
        System.out.println(genDiaoBoBillNo());
    }
}
